package com.student_exam_system.service;

import com.student_exam_system.pojo.Paper;

import java.util.List;
import java.util.Map;

public interface PaperService {

    /**根据userId生成Paper
     * @param userId userId
     * @return 返回用户的所有试卷
     */
    List<Paper> queryPaperByUserId(int userId);

    /**查询所有的paper
     * @return 返回所有的paper
     */
    List<Paper> queryPaperAll();

    /**根据paperId来返回paper
     * @return 返回paper
     */
    Paper queryPaperById();

    /**
     * 查找所有的试卷【这个返回的是试卷的名称跟id，当用户点击id采取进去查看该试卷的所有试题】
     * @return  paperId以及其相对应的paperName
     */
    List<Map<Integer,String>> selectPaperName();

    /**
     * 点击进去之后就会直接显示所有的试卷试题信息
     * @param paperId  试卷id
     * @return  整张试卷的试题
     */
    List<Paper> showPaperDetails(int paperId);

    /**
     * 创建新的试卷【如果有了paper_question的关系，并且paperId也是新建的，就?了】
     * @param teacherId 教师id
     * @param paperName 试卷名
     * @param questionId 试题id
     * @param choice 选择【1：代表手动出卷  2：代表自动出卷】
     * @param number 【自动出卷时，选择出题的个数】
     * @return  1：创建新试卷成功  0：创建失败
     */
    int newPaper(String paperName,int teacherId, List<Integer> questionId,int choice,int number);

    /**
     * 自动提交试卷【事务：开考时间一到就开始考试  时间一到就自动交卷  就会修改改考生的考试状态】
     * @param paperId  试卷id
     * @param studentId  学生id
     * @param classId 班级id
     * @return  【1：自动提交成功   0：自动提交失败】
     */
    int putInPaper(int paperId,int studentId,int classId);

}
